<?php
/**
 * @author		João Batista Neto
 * @brief		Objetos que representam cada tipo do retorno da API
 * @package		dso.buscape.result.type
 */

require_once 'dso/buscape/result/type/BuscapeLeaf.php';

/**
 * @brief		Categoria
 * @details		Categoria de produtos BuscaPé
 * @class		BuscapeCategory
 * @ingroup		Types
 */
class BuscapeLink extends BuscapeLeaf {
	/**
	 * @brief	Tipo do link
	 * @var		string
	 */
	private $type;

	/**
	 * @brief	URL do link
	 * @var		string
	 */
	private $url;

	/**
	 * @brief	Cria uma instância do objeto com os argumentos passados
	 * @param	$args array Lista de argumentos que serão utilizados para criação do objeto
	 * @return	BuscapeLink
	 */
	public static function createInstante( array $args ){
		$link = new BuscapeLink();

		foreach ( $args as $property => $value ){
			if ( $property == 'url' && !filter_var( $value , FILTER_VALIDATE_URL ) ){
				throw new InvalidArgumentException( 'URL inválida.' );
			}

			$link->$property = $value;
		}

		return $link;
	}

	/**
	 * @brief	Recupera o tipo do link
	 * @return	string
	 */
	public function getType(){
		return $this->type;
	}

	/**
	 * @brief	Recupera a URL do link
	 * @return	string
	 */
	public function getURL(){
		return $this->url;
	}
}